Skip to content

DAH-2587: document agent-native signup in the lium skill - #3

Merged
arhangel66 merged 5 commits into
mainfrom
DAH-2587-agent-signup-docs
Aug 5, 2026
Merged

DAH-2587: document agent-native signup in the lium skill#3
arhangel66 merged 5 commits into
mainfrom
DAH-2587-agent-signup-docs

Conversation

@arhangel66

Copy link
Copy Markdown
Collaborator

What

Adds two sections to lium/SKILL.md, placed right before the existing lium init auth material:

  • No Account Yet — Sign Up via API — the three calls that create an account and yield a usable API key today: POST /users, POST /users/login, GET /keys. States that lium init is for a user who already has an account, and that the signup response carries no key.
  • After Signup — What Still Blocks the First Rental — $5 signup credit granted once per IP, email verification (the one step a human must do), positive balance, the two 403 errors from POST /executors/{executor_id}/rent, headless funding via POST /tmc-pay/create-invoice (or /nowpayments/create-invoice), and that SSH keys need no special handling.

The frontmatter description gains account-creation triggers so the skill loads on "create a lium account" / "sign up for lium" phrasing.

Why

Agents currently stall at the web signup form: nothing in the skill says signup is fully programmatic, so a prompt like "create a lium.io account, create an API key, rent the cheapest machine with my SSH key" dead-ends on step one. The API has been open all along — this is where that knowledge belongs.

Notes

  • Every endpoint, payload, response field and status code documented here was verified against the backend source.
  • A change is in flight to return the API key directly from POST /users; the section says so and is written so that update is a small edit, not a rewrite. The one-call flow is not documented as working yet.
  • llms-full.txt is regenerated with ./scripts/build-llms-full.sh in the same commit; the drift check passes locally.

Comment thread lium/SKILL.md Outdated
```bash
lium signup --email ada@example.com # creates the account, stores the API key
lium ls # browse machines
lium up <node-id> # rent

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: lium up prompts without -y, so this cold start stalls at the last step for a headless agent.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already covered — the cold-start block reads lium up <node-id> -y, so it does not prompt.

Comment thread lium/SKILL.md Outdated
The key is written to `~/.lium/config.ini`, so the account is then indistinguishable from one
set up with `lium init`.

**Requires CLI 0.0.29 or newer.** Older binaries do not have the command. Check and update:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: main is on 0.0.28 and this PR does not bump it, so nothing pins signup to 0.0.29.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bumped: Datura-ai/lium#102 now sets 0.0.29 in both lium/__about__.py and pyproject.toml, so the version gate here matches what ships.

Comment thread lium/SKILL.md Outdated
| jq -r '.[] | select(.name=="Default") | .key')

lium config set api.api_key "$KEY"
lium config set ssh.key_path ~/.ssh/id_ed25519

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: that key does not exist on a fresh host, and setting the path makes ensure_config() skip generating one, so renting fails.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already covered — the doc tells the agent to leave ssh.key_path unset so the CLI generates and configures the key on first use.

Comment thread lium/SKILL.md Outdated

| 403 on rent | Meaning | Action |
|---|---|---|
| `"User is not verified"` | The verification link in the welcome email has not been clicked. Only the user can click it — there is no API for it. | Ask the user to click it, then retry. Do not abandon the task. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: POST /auth/verify-email exists and verifies with the emailed token, so "no API for it" is not accurate.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. The "no API for it" claim is gone; the doc now names POST /auth/resend-verify-email and POST /auth/verify-email as the recovery path, keeping "ask the user to click the link" as the primary advice.

Comment thread lium/SKILL.md Outdated
Funding options:

- Dashboard: https://lium.io/billing
- Headless invoice: `POST /tmc-pay/create-invoice` with header `X-API-Key: sk_...` returns

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NIT: create-invoice also needs amount, crypto_currency and crypto_network in the body, otherwise it answers 422.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed — the bullet now shows the required body (amount, crypto_currency, crypto_network) and points at GET /tmc-pay/currencies for the valid pairs.

@arhangel66
arhangel66 merged commit dbb5049 into main Aug 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants